/**
 * 版权所有 2009-2012山东新北洋信息技术股份有限公司
 * 保留所有权利。
 */
package com.linyaonan.leetcode.easy._557;

/**
 *
 * 给定一个字符串，你需要反转字符串中每个单词的字符顺序，同时仍保留空格和单词的初始顺序。
 *
 * 示例 1:
 *
 * 输入: "Let's take LeetCode contest"
 * 输出: "s'teL ekat edoCteeL tsetnoc" 
 * 注意：在字符串中，每个单词由单个空格分隔，并且字符串中不会有任何额外的空格。
 *
 *
 * @ProjectName: leetcode
 * @Package: com.linyaonan.leetcode.easy._557
 * @ClassName: ReverseWords
 * @Author: linyaonan
 * @Date: 2020/1/2 14:04
 */
public class ReverseWords {

    public String reverseWords(String s) {
        if (s == null || "".equals(s)) {
            return s;
        }
        if ("".equals(s.trim())) {
            return s.trim();
        }
        String[] list = s.split(" ", -1);
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < list.length; i++) {
            String str = list[i];
            for (int j = str.toCharArray().length - 1; j >= 0; j--) {
                sb.append(str.charAt(j));
            }
            if (i != list.length - 1) {
                sb.append(" ");
            }
        }
        return sb.toString();
    }
}
